/**
 * eaching 工具类
 */
function dataCheck(){
	//数据对象
	var dataObj={
			time:2000,//运行间隔
			_mn:[],//主表字段数组
			_dt:[],//明细字段数组
			_isStartCheck:true,//是否一开始就进行数据检测
			//_indexnum:"indexnum0",//明细扫描依赖数据，如检测明细2，请修改
			_nowData:{},//记录上次记录数据
			_updateNowData:function(){
				//更新缓存池数据
				//主表
				//完成方法触发，再次循环修改被被修改数据
				for(var i=0;i<dataObj._mn.length;i++){
					var mnData=dataObj._mn[i];
					//遍历一组数据字段id
					for(var j=0;j<mnData.id.length;j++){
						var fieldObj=$("#"+mnData.id[j]);
						//数据存在，并且与上次数据不同
						if(typeof(fieldObj)!="undefined"&&fieldObj.val()!=dataObj._nowData[mnData.id[j]]){
							dataObj._nowData[mnData.id[j]]=fieldObj.val();
						}
					}
				}
				//明细
				for(var i=0;i<dataObj._dt.length;i++){
					var dtData=dataObj._dt[i];
					//遍历一组数据字段id
					for(var j=0;j<dtData.id.length;j++){
						//进入每个id循环
						var fieldObj=$("input[name^='"+dtData.id[j]+"']");
						fieldObj.each(function(){
							//进入行数据循环
							var _this=$(this);
							var name=_this.attr("name");
							var index=name.split("_")[1];
							if(typeof(_this)!="undefined"&&_this.val()!=dataObj._nowData[name]){
								//调用方法,并且传入下标
								dataObj._nowData[name]=fieldObj.val();
							}
						});
					}
				}
			},
			_updateMainData:function(mnData){
				for(var j=0;j<mnData.id.length;j++){
					var fieldObj=$("#"+mnData.id[j]);
					if(typeof(fieldObj)!="undefined"&&fieldObj.val()!=dataObj._nowData[mnData.id[j]]){
						dataObj._nowData[mnData.id[j]]=fieldObj.val();
					}
				}
			},
			_updateDetailData:function(dtData,index){
				for(var j=0;j<dtData.id.length;j++){
					//获取字段及其id
					var fieldObj=$("input[name$='"+index+"_"+dtData.id[j]+"']");
					var name=fieldObj.attr("name");
					if(typeof(fieldObj)!="undefined"&&fieldObj.val()!=dataObj._nowData[name]){
						dataObj._nowData[name]=fieldObj.val();
					}
				}
			},
			_doCallBack:function(){
				//遍历_mn主数据监测
				for(var i=0;i<dataObj._mn.length;i++){
					var mnData=dataObj._mn[i];
					//遍历一组数据字段id
					for(var j=0;j<mnData.id.length;j++){
						var fieldObj=$("#"+mnData.id[j]);
						//数据存在，并且与上次数据不同
						if(typeof(fieldObj)!="undefined"&&fieldObj.val()!=dataObj._nowData[mnData.id[j]]){
							//调用方法
							mnData.fun(mnData.id);
							//进行组数据更改记录
							dataObj._updateMainData(mnData);
							break;
						}
					}
				}
				//进行明细处理
				for(var i=0;i<dataObj._dt.length;i++){
					//组循环
					var dtData=dataObj._dt[i];
					for(var j=0;j<dtData.id.length;j++){
						//进入每个id循环
						var fieldObj=$("input[name$='_"+dtData.id[j]+"']");
						fieldObj.each(function(){
							//进入行数据循环
							var _this=$(this);
							var name=_this.attr("name");
							var index=name.split("_")[1];
							console.log("name:"+name);
							console.log("index:"+index);
							if(typeof(_this)!="undefined"&&_this.val()!=dataObj._nowData[name]){
								//调用方法,并且传入下标
								dtData.fun(index,dtData.id);
								//进行组数据更新
								dataObj._updateDetailData(dtData,index);
							}
						});
					}
				}
				/*var indexnum=$("input").val();
				for(var k=0;k<indexnum;k++){
					//遍历_dt主数据监测
					for(var i=0;i<dataObj._dt.length;i++){
						var dtData=dataObj._dt[i];
						//遍历一组数据字段id
						for(var j=0;j<dtData.id.length;j++){
							var fieldObj=$("#"+dtData.id[j]+"_"+k);
							//数据存在，并且与上次数据不同 同时需要记录下标
							if(typeof(fieldObj)!="undefined"&&fieldObj.val()!=dataObj._nowData[dtData.id[j]+"_"+k]){
								//调用方法,并且传入下标
								dtData.fun(k,dtData.id);
								//更新明细数据
								
								break;
							}
						}
					}
				}*/
				//明细遍历结束
				//进行上次数据变化记录
				//dataObj._updateNowData();
				
			}
			
	};
	//暴露数组部分数据，方便修改
	this.mn=dataObj._mn;
	this.dt=dataObj._dt;
	this.indexnum=dataObj._indexnum;
	//任务开始
	this.start=function(time){//开始运行
		if(arguments.length>0&&typeof(time)=="number"){
			dataObj.time=time;
		}
		//开始检测的时候是否进行数据的第一次更改
		if(!dataObj._isStartCheck){
			dataObj._updateNowData();
		}
		window.setInterval(dataObj._doCallBack, dataObj.time);
		return this;
	};
	//用于更改配置下列
	
	this.isStartCheck=function(obj){
		dataObj._isStartCheck=obj;
		return this;
	}
	//插入主表数据
	this.addField=function(id,fun){
		//检测数据参数
		var data=[];
		if(id!=""&&typeof(id)!="undefined"){
			if(typeof(id)=="string"||typeof(id)=="number"){
				data.push(id);
			}else{
				data=id;
			}
		}
		
		if(typeof(fun)=="function"){
			//加入到主表数据中
			dataObj._mn.push({id:data,fun:fun})
		}
		return this;
	};
	//插入明细数据
	this.addDtField=function(id,fun){
		//检测数据参数
		var data=[];
		if(id!=""&&typeof(id)!="undefined"){
			if(typeof(id)=="string"||typeof(id)=="number"){
				data.push(id);
			}else{
				data=id;
			}
		}
		if(typeof(fun)=="function"){
			//加入到主表数据中
			dataObj._dt.push({id:data,fun:fun})
		}
		return this;
	};
	
}

function ajaxFunction(urls,datas,callbackFunction,async){
	$.ajax({
		url:urls,
		data:datas,
		type:"post",
		async:arguments==4?async:true,
		success:callbackFunction
	});
}
//字段赋值
function setFMVal(id,v,h){
	$("#"+id).val(val);
	if(arguments.length==3){
		$("#"+id+"span").html(html);
	}else{
		$("#"+id+"span").html(val);
	}	
}